昨天我們大致上描述了在自己的環境中,編譯好源代碼,變且包裝成
Container``的過程與方法!
今天我們來解決在客戶環境中更新容器
前面有稍微提到,理論上我們已經做好了容器,並且也貼上了 Tag
,應該只要在客戶端更新容器就可以了吧!?
echo "Stop Container"
docker-compose stop
echo "Remove Container"
docker-compose rm -f
echo "Remove Volume"
docker volume rm volume -f
echo "Update Backend"
git pull
export GIT_REV_COUNT=`git rev-parse HEAD`
echo "Set up IMAGE VERSION is ${GIT_REV_COUNT}"
DIR="./frontend"
echo "Update Frontend"
if [ -d "$DIR" ] ; then
echo "Exist Dir"
cd frontend
git pull
else
echo "Not Exist Dir"
git clone
fi
export GIT_REV_COUNT_FD=`git rev-parse HEAD`
echo "Set up IMAGE VERSION is ${GIT_REV_COUNT_FD}"
cd ..
echo "reload docker compose container"
docker-compose up -d --remove-orphans --force-recreate
echo "delete obsolete image"
docker image prune -f
最後我們把它包裝成了一個 .sh
,檔案,如此一來在更新系統時,都只要下sh update.sh
就可以更新了!
docker-compose stop
首先我們先停止了容器!
docker-compose rm -f
接著我們刪除容器!
docker volume rm volume -f
因為我們有用到通用的掛載,這個我們也移除!
git pull
接下來執行,取得最新版本號
export GIT_REV_COUNT=git rev-parse HEAD
echo "Set up IMAGE VERSION is ${GIT_REV_COUNT}"
這邊就是設置環境變數與版本號碼,我們只要在 Docker-compose.yaml
中使用就可以了!
像是這樣
image: registry.gitlab.com/xxx/xxx/image:${GIT_REV_COUNT}
docker-compose up -d --remove-orphans --force-recreate
然後再將容器啟動就可以了!
如此一來我們就完成了,在不能直接操作客戶環境的情況下,簡化了更新與部署,並且讓開發人員可以很簡單的更新系統!
到這邊為止,我們的自動化旅程要告一段落了,接下來我們來分享相關知識管理的項目!